package com.hibernate.hrm.service.contract;

import com.hibernate.hrm.entity.Department;
import com.hibernate.hrm.entity.User;
import com.hibernate.hrm.entity.dto.contract.ContractDTO;
import com.hibernate.hrm.entity.dto.contract.ContractDetailDTO;
import com.hibernate.hrm.entity.dto.contract.ContractEditDTO;
import com.hibernate.hrm.entity.dto.contract.ContractQueryDTO;
import org.springframework.data.domain.Page;
import java.util.List;

public interface ContractService {
    Page<ContractDTO> getContractList(ContractQueryDTO queryDTO, User currentUser);
    List<Department> getAccessibleDepartments(User currentUser);
    void terminateContract(Integer contractId, User operator);
    ContractDetailDTO getContractDetail(Integer contractId, User currentUser);
    boolean verifyElectronicSignature(Integer contractId);
    String analyzeLegalClauses(Integer contractId);
    byte[] exportContractToWord(Integer contractId, User currentUser);
    ContractDetailDTO getContractForEdit(Integer contractId, User currentUser);
    void updateContract(ContractEditDTO editDTO, User currentUser);
}
